A data storage system which stores files on multiple storage disks includes a central controller connected to each of the storage disks. The central controller runs processes which (i) place files onto the storage disks and (ii) monitor the amount of storage occupied on each of the storage disks.
In many instances, the central controller also runs processes which moves files stored on the storage disks so that the amount of occupied storage on each storage disk is the same. For example, the processes running on the central controller may make a determination that some of the storage disks have a level of occupied storage far in excess of that on other storage disks. In such a situation, the placing of files on a storage disk may consume more processing time due to reduced parallelism of write operations, as the available space is concentrated on fewer storage disks.
A conventional storage rebalancing process makes a determination of all the files stored on the storage disks which are to be moved from their current storage disk to another storage disk in order to equalize the occupied storage on the storage disks as much as possible.